﻿using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ArrayListTest
{
    class Program
    {
        static void Main(string[] args)
        {  
            //查找集合中是否含有 abc 元素。
            ArrayList arraylist1 = new ArrayList() { "cdf", "hello", 'A', 12, 25.6, "abc" };
          
            Console.WriteLine(arraylist1.Contains("abc"));



            //将集合中元素下标是偶数的元素添加到另一个集合中。
            ArrayList arraylist2 = new ArrayList() { 'A',"B",3,4,5,6,7,8};

            ArrayList newlist = new ArrayList();

            for (int i = 0; i < arraylist2.Count; i+=2)
            {
                arraylist2.RemoveAt(i);
            }

            newlist.AddRange(arraylist2);
            OutValues(newlist);



            //在集合中第一个元素的后面任意插入 3 个元素。

            ArrayList arraylist3 = new ArrayList() { '我', '请', '客', '你', '们', '随', '便', '吃' };

            ArrayList list3 = new ArrayList() { '花', '1', '块'};

            arraylist3.InsertRange(1, list3);

            OutValues(arraylist3);

            //将集合中的元素使用 Sort 方法排序后输出。

            ArrayList arraylist4 = new ArrayList() { 'a', 'd', 'b', 'f' ,'e', 'c', 'g' };

            arraylist4.Sort();

            OutValues(arraylist4);


            //使用ICompare的方式来排序输出string。

            ArrayList arraylist5 = new ArrayList() { 's', 't', 'r', 'i', 'n', 'g' };

            arraylist5.Sort(new MyCompare());

            OutValues(arraylist5);

            Console.ReadKey();
        }

        static void OutValues(ICollection collection)
        {
            foreach (var item in collection)
            {
                Console.Write(item+" ");
            }
            Console.WriteLine();
        }
    }

    class MyCompare : IComparer
    {
        public int Compare(object x, object y)
        {
            string str1 = x.ToString();
            string str2 = y.ToString();
            return str1.CompareTo(str2);
        }
    }
}
